package router

import (
	"fmt"
	"os"

	"gitee.com/xiaoyutab/gatway/app/user"
	"gitee.com/xiaoyutab/xgotool/optional/xcmd"
	"gitee.com/xiaoyutab/xgotool/xgin"
	"gitee.com/xiaoyutab/xgotool/xgin/xginxcron"
	"gitee.com/xiaoyutab/xgotool/xgin/xginxgodb"
	"gitee.com/xiaoyutab/xgotool/xgin/xginxlog"
	"gitee.com/xiaoyutab/xgotool/xgin/xginxnsq"
	"github.com/gin-gonic/gin"
)

// APP内部接口
func app(r *gin.RouterGroup) {
	{
		// 用户相关接口文档
		u := r.Group("user")
		u.POST("regedit", xgin.Convert(user.Regedit)) // 注册用户
	}
	// 必须要登录才能访问
	r.Use(xgin.MustLogin)
	// 平滑重启路由信息
	r.GET("reload", xgin.Convert(func(ctx *gin.Context) *xgin.Response {
		// 进程PID
		pid := os.Getpid()
		// 平滑重启pid
		xcmd.Exec("kill", "-1", fmt.Sprintf("%d", pid))
		return xgin.Resp().SuccessEmpty()
	}))
	// 后台配置项
	xginxgodb.Regedit(r.Group("xconfig"), nil)      // 配置组
	xginxcron.Regedit(r.Group("xcron"), nil, false) // 定时任务
	xginxnsq.Regedit(r.Group("xnsq"), nil, false)   // 队列任务
	xginxlog.Regedit(r.Group("xlog"), nil)          // 日志记录
}
